The invention relates to the field of service center operation. Specifically, it relates to efficiently selecting agents for servicing incoming tasks or outgoing tasks based on sets of skills required to service the individual tasks. The invention further relates to selecting agents having adequate, but minimal, skills to service these tasks.
There are many known algorithms which have been used to route tasks, such as incoming calls, to agents within a group or groups in call and service centers. Recently, operators have realized the importance of task routing based on the skills of agents as compared to the needs required to adequately service individual tasks. For instance, a telephone caller may require expertise in a particular software or hardware system, or expertise in a particular sector of the financial market, or a specific company. The same is true of a person requesting assistance by e-mail. Further, a caller may speak only a specific language and therefore require an agent fluent in that language. The list of possible skills goes on and on, and are defined by the owners of the individual service centers according to the purposes of the service centers.
U.S. Pat. No. 5,825,869, issued to Brooks et. al. On Oct. 20, 1998, describes a system for skill-based routing of telephone calls. Brooks attempts to select agents whose proficiency in specified skills are closest to the required proficiency levels of one or more required skills. However, Brooks describes no algorithm for actually performing the calculations and logic to make the selection. Therefore, it must be presumed that Brooks performs a brute-force method in which all available agents are evaluated in a straight-forward manner and then the results compared to finally select an agent. Prior versions of IBM""s CallPath products performed a similar brute-force manner of agent selection. However, such methods of agent selection are very inefficient, especially for service centers that experience high levels of traffic.
The invention assigns tasks to agents in a service center based on agent skills required to service individual tasks. In response to a task to be serviced, the agent skills required to process the task are ascertained out of a set of N defined skills. It is convenient to consider the N skills as represented by N separate boolean variables. A set X is determined containing all logical states of the boolean variables that contain the required skills. Then a resume table of available agents is built. It is convenient to view the resume table as organized by the logical states of the N boolean variables; each agent is represented in each state that includes all skills possessed by the agent. All available agents qualified to service the task are determined from the resume table of available agents. From this set of agents, those agents associated with a state of the agent resume table that is not within the set X are disqualified for serving the task. After this, an agent is selected from those remaining to service the task.
Preferably, an agent is selected that has the minimum qualification level to service the task from among those agents remaining in contention. One preferred way of doing this is to subtract from the number of terms in a canonical form of the required skills expression a number equal to the number of times the agent appears in the set of states X and picking an agent with the lowest result. In the preferred embodiment, however, proficiency levels of each required skill are taken into account in selecting an agent. In the preferred embodiment, a number AP equal to the number of times the agent appears in the set of states X is computed for each agent remaining in contention. These agents are grouped according to their values of AP. The groups are then processed in the order of lowest value of AP to greatest value of AP until an agent is selected. For each group processed, a proficiency table is searched containing proficiency levels for all skills possessed by the agents remaining in contention. Agents in the present group that do not possess the minimum proficiency level for each skill in the skills expression are eliminated from contention. A normalized proficiency level is then calculated for all remaining agents in the present group. If there are any agents left in the present group at this time, the agent with the smallest normalized proficiency level is selected to service the task. Otherwise, the next group is processed. If no qualified agent is found after processing all groups, the task is re-queued for later service.